﻿using BCCommon.Enums;
using BCCommon.TMS.Driver;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BCDto.Common.SystemConfiguration
{
	/// <summary>
	/// 系统配置
	/// </summary>
	public class SystemConfigurationRequestDto
	{
        /// <summary>
        /// 小程序用户顶部颜色
        /// </summary>		
        public string MinProgramHeadColor { get; set; }
        /// <summary>
        /// 小程序用户字体颜色
        /// </summary>		
        public string MinProgramFontColor { get; set; }
        /// <summary>
        /// 小程序标题
        /// </summary>		
        public string MinProgramTitle { get; set; }
        /// <summary>
        /// 用户端版权信息
        /// </summary>		
        public string ClientAppCopyright { get; set; }
        /// <summary>
        /// 客服电话
        /// </summary>		
        public string CustomerPhone { get; set; }
        /// <summary>
        /// 开启取件码
        /// </summary>		
        public bool EnablePickupCode { get; set; }
        /// <summary>
        /// 开启取件图片
        /// </summary>		
        public bool EnablePickupPhoto { get; set; }
        /// <summary>
        /// 开启听单倒计时
        /// </summary>		
        public bool EnableListenCountdown { get; set; }
        /// <summary>
        /// 听单范围（公里）
        /// </summary>		
        public int ListenCountdownRange { get; set; }
        /// <summary>
        /// 开启骑手同时接单数上限
        /// </summary>		
        public bool EnableHorsemanAcceptOrderCount { get; set; }
        /// <summary>
        /// 骑手同时接单数上限
        /// </summary>		
        public int HorsemanAcceptOrderCount { get; set; }
        /// <summary>
        /// 开启骑手每天取消订单数上限
        /// </summary>		
        public bool EnableHorsemanTodayCancelOrderCount { get; set; }
        /// <summary>
        /// 骑手每天取消订单数上限
        /// </summary>		
        public int HorsemanTodayCancelOrderCount { get; set; }
        /// <summary>
        /// 订单佣金比例
        /// </summary>		
        public decimal OrderCommissionRatio { get; set; }
        /// <summary>
        /// 开启分公司订单佣金比例
        /// </summary>		
        public bool EnableSubCompanyOrderCommissionRatio { get; set; }
        /// <summary>
        /// 开启用户获得积分比例
        /// </summary>		
        public bool EnableUserPointsRatio { get; set; }
        /// <summary>
        /// 用户获得积分比例
        /// </summary>		
        public decimal UserPointsRatio { get; set; }
        /// <summary>
        /// 开启用户获得成长比例
        /// </summary>		
        public bool EnableUserGrowthRatio { get; set; }
        /// <summary>
        /// 用户获得成长比例
        /// </summary>		
        public decimal UserGrowthRatio { get; set; }
        /// <summary>
        /// 开启听单优先级
        /// </summary>		
        public bool EnableListenCountdownPriorityType { get; set; }
        /// <summary>
        /// 听单优先级（服务分最高/距离最短）
        /// </summary>		
        public DriverListenCountdownPriorityType ListenCountdownPriorityType { get; set; }
        /// <summary>
        /// 开启延迟抢单时间
        /// </summary>		
        public bool EnableDelayTakingForm { get; set; }
        /// <summary>
        /// 延迟抢单时间（秒）
        /// </summary>		
        public int DelayTakingFormSeconds { get; set; }
        /// <summary>
        /// 开启隐藏听单倒计时超限时间
        /// </summary>		
        public bool EnableHideenCountdown { get; set; }
        /// <summary>
        /// 隐藏听单倒计时超限时间（秒）
        /// </summary>		
        public int HideenCountdownSeconds { get; set; }
        /// <summary>
        /// 开启骑手取货前到店距离限制
        /// </summary>		
        public bool EnableHorsemanPickupDistanceLimit { get; set; }
        /// <summary>
        /// 骑手取货前到店距离限制
        /// </summary>		
        public int HorsemanPickupDistanceLimit { get; set; }
        /// <summary>
        /// 开启车辆取货距离限制
        /// </summary>		
        public bool EnableVehiclePickupDistanceLimit { get; set; }
        /// <summary>
        /// 车辆取货距离限制
        /// </summary>		
        public int VehiclePickupDistanceLimit { get; set; }
        /// <summary>
        /// 开启发票申请
        /// </summary>		
        public bool EnableInvoiceApplication { get; set; }
        /// <summary>
        /// 开启轮渡费
        /// </summary>		
        public bool EnableFerryFee { get; set; }
        /// <summary>
        /// 轮渡费
        /// </summary>		
        public decimal FerryFee { get; set; }
        /// <summary>
        /// 开启提现最低金额
        /// </summary>		
        public bool EnableCashAdvanceMinAmount { get; set; }
        /// <summary>
        /// 提现最低金额
        /// </summary>		
        public decimal CashAdvanceMinAmount { get; set; }
        /// <summary>
        /// 开启提现最大次数
        /// </summary>		
        public bool EnableCashAdvanceMaxTimes { get; set; }
        /// <summary>
        /// 提现最大次数
        /// </summary>		
        public int CashAdvanceMaxTimes { get; set; }
        /// <summary>
        /// 开启提现周期
        /// </summary>		
        public bool EnableCashAdvanceTimesCycle { get; set; }
        /// <summary>
        /// 提现周期
        /// </summary>		
        public CashAdvanceTimesCycleType CashAdvanceTimesCycle { get; set; }
        /// <summary>
        /// 开启提现时间段限制
        /// </summary>		
        public bool EnableCashAdvanceTodayHourRangeLimit { get; set; }
        /// <summary>
        /// 允许提现开始小时数限制
        /// </summary>		
        public int CashAdvanceTodayStartHourLimit { get; set; }
        /// <summary>
        /// 允许提现结束小时数限制
        /// </summary>		
        public int CashAdvanceTodayEndHourLimit { get; set; }
        /// <summary>
        /// 开启保证金
        /// </summary>		
        public bool EnableSecurityDeposit { get; set; }
        /// <summary>
        /// 保证金金额
        /// </summary>		
        public decimal SecurityDepositAmount { get; set; }
        /// <summary>
        /// 开启用户充值赠送比例
        /// </summary>		
        public bool EnableUserRechargeGiftProportion { get; set; }
        /// <summary>
        /// 用户充值赠送比例
        /// </summary>		
        public decimal UserRechargeGiftProportion { get; set; }
        /// <summary>
        /// 支持司机二维码
        /// </summary>		
        public bool EnableDriverQrcode { get; set; }
        /// <summary>
        /// 司机授权页背景图
        /// </summary>		
        public string DriverAuthorizeBackgroundAddress { get; set; }
        /// <summary>
        /// 司机分享图片
        /// </summary>		
        public string DriverShareImageAddress { get; set; }
        /// <summary>
        /// 司机邀请分享海报图
        /// </summary>		
        public string DriverInviteSharePosterAddress { get; set; }
        /// <summary>
        /// 司机注册登录背景图
        /// </summary>		
        public string DriverLoginBackgroundAddress { get; set; }
        /// <summary>
        /// 司机首页背景图
        /// </summary>		
        public string DriverHomeBackgroundAddress { get; set; }
        /// <summary>
        /// 司机抢单图标
        /// </summary>		
        public string DriverQuickAcceptOrderIcon { get; set; }
        /// <summary>
        /// 司机待抢地图图标
        /// </summary>		
        public string DriverPendingQuickAcceptOrderIcon { get; set; }
        /// <summary>
        /// 司机接单设置图标
        /// </summary>		
        public string DriverAcceptOrderSettingIcon { get; set; }
        /// <summary>
        /// 司机接单记录图标
        /// </summary>		
        public string DriverAcceptOrderRecordIcon { get; set; }
        /// <summary>
        /// 用户授权页背景图
        /// </summary>		
        public string ClientAuthorizeBackgroundAddress { get; set; }
        /// <summary>
        /// 用户分享图片
        /// </summary>		
        public string ClientShareImageAddress { get; set; }
        /// <summary>
        /// 用户邀请分享海报图
        /// </summary>		
        public string ClientInviteSharePosterAddress { get; set; }
        /// <summary>
        /// 用户首页骑手位置图标
        /// </summary>		
        public string ClientHomeHorsemanLocationIcon { get; set; }
        /// <summary>
        /// 用户首页司机位置图标
        /// </summary>		
        public string ClientHomeDriverLocationIcon { get; set; }
        /// <summary>
        /// 用户首页右下角按钮图标
        /// </summary>		
        public string ClientHomeRightDownButtonIcon { get; set; }
        /// <summary>
        /// 二维码背景海报
        /// </summary>		
        public string QrcodePosterAddress { get; set; }
        /// <summary>
        /// 订单进行中图标
        /// </summary>		
        public string OrderTransportingIcon { get; set; }
        /// <summary>
        /// 开启平台系统
        /// </summary>		
        public bool EnablePlatformSystem { get; set; }
        /// <summary>
        /// 平台系统关闭提示语
        /// </summary>		
        public string ClosedPlatformRemark { get; set; }
        /// <summary>
        /// websocket地址
        /// </summary>		
        public string WebsocketHostUrl { get; set; }
        /// <summary>
        /// 开启公益金比例
        /// </summary>		
        public bool EnablePublicWelfareFundProportion { get; set; }
        /// <summary>
        /// 公益金比例
        /// </summary>		
        public decimal PublicWelfareFundProportion { get; set; }
        /// <summary>
        /// 司机接单提示音
        /// </summary>		
        public string DriverAcceptOrderMusic { get; set; }
        /// <summary>
        /// 管理端新订单提示音
        /// </summary>		
        public string SimNewOrderMusic { get; set; }
        /// <summary>
        /// 开启平台系统营业时间段
        /// </summary>		
        public bool EnablePlatformBusinessRange { get; set; }
        /// <summary>
        /// 平台系统营业开始时间点
        /// </summary>		
        public int PlatformBusinessStartHour { get; set; }
        /// <summary>
        /// 平台系统营业结束时间点
        /// </summary>		
        public int PlatformBusinessEndHour { get; set; }
        /// <summary>
        /// 开启时间水印
        /// </summary>		
        public bool EnableTimeWatermark { get; set; }
        /// <summary>
        /// 时间水印图片地址
        /// </summary>		
        public string TimeWatermarkAddress { get; set; }
    }
}
